package com.appointment.utils.Jwt;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class JwtRoles {
    public static final String ADMIN = "admin";
    public static final String USER = "user";
    public static final String PROFESSOR = "professor";

    private static final Set<String> roles = new HashSet<>(Set.of(ADMIN, USER, PROFESSOR));

    private static final Map<String, Long> expirationTimes = Map.of(
            // 1 天
            ADMIN, 1000L * 60 * 60 * 24,
            // 7 天
            USER, 1000L * 60 * 60 * 24 * 7,
            // 1 小时
            PROFESSOR, 1000L * 60 * 60
    );

    /**
     * 获取对应的角色对应的过期时间
     *
     * @param role 角色
     * @return 过期时间（毫秒）
     */
    public static long getExpireTime(String role) {
        return expirationTimes.getOrDefault(role, 1000L * 60 * 60 * 24 * 7); // 默认 7 天
    }

    /**
     * 检查角色是否存在
     *
     * @param role 角色
     * @return 是否存在
     */
    public static boolean checkRole(String role) {
        return roles.contains(role);
    }
}